package com.tiantian.subject.mapper;

import com.tiantian.subject.domain.entity.UserSolve;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author tiantian
 */
@Mapper
public interface UserSolveMapper {

    /**
     * 通过ID查询单条数据
     */
    UserSolve selectById(String replyId);

    /**
     * 通过实体作为筛选条件查询
     */
    List<UserSolve> selectList(UserSolve UserSolve);

    /**
     * 新增数据
     */
    Boolean insert(UserSolve userSolve);

    /**
     * 修改数据
     */
    Boolean updateAnswer(UserSolve userSolve);

    /**
     * 删除工作人员答题记录
     */
    void deleteAdminReplys();

    /**
     * 检查用是否已经进行提交该题目
     */
    int checkReplyUnique(@Param("topicId") String topicId,@Param("userId") Long userId);

    /**
     * 根据题目ID和用户ID查询出用户答案
     */
    String selectAnsByTopicIdAndUserId(@Param("topicId") String topicId,@Param("userId") Long userId);

    /**
     * 根据用户Id查询答题记录
     */
    List<UserSolve> selectByUserId(Long userId);

    /**
     * 根据replyId更新数据
     */
    int updateByReplyId(UserSolve UserSolve);

    /**
     * 查询最后提交的时间
     */
    String selectLastReplyTime(Long userId);

    /**
     * 根据用户Id获取提交记录数
     */
    int countReplyByUserId(Long userId);

    /**
     * 根据用户id获取判题人
     */
    String selectJudgerByUserId(Long userId);

    List<UserSolve> selectByIds(List<String> replyIds);
}


